home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1997 December / PC Pro December 1997 CD-Rom coverdisc.iso / symantec / dbAnywh / JAVA.BIN / CLASSES.ZIP / sun / tools / tree / ConvertExpression.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-12-14  |  3.1 KB  |  122 lines

  1. package sun.tools.tree;
  2.  
  3. import java.io.PrintStream;
  4. import java.util.Hashtable;
  5. import sun.tools.asm.Assembler;
  6. import sun.tools.java.Constants;
  7. import sun.tools.java.Environment;
  8. import sun.tools.java.Type;
  9.  
  10. public class ConvertExpression extends UnaryExpression {
  11.    public ConvertExpression(int var1, Type var2, Expression var3) {
  12.       super(55, var1, var2, var3);
  13.    }
  14.  
  15.    public long checkValue(Environment var1, Context var2, long var3, Hashtable var5) {
  16.       return super.right.checkValue(var1, var2, var3, var5);
  17.    }
  18.  
  19.    Expression simplify() {
  20.       switch (super.right.op) {
  21.          case 62:
  22.          case 63:
  23.          case 64:
  24.          case 65:
  25.             int var5 = ((IntegerExpression)super.right).value;
  26.             switch (super.type.getTypeCode()) {
  27.                case 1:
  28.                   return new ByteExpression(super.right.where, (byte)var5);
  29.                case 2:
  30.                   return new CharExpression(super.right.where, (char)var5);
  31.                case 3:
  32.                   return new ShortExpression(super.right.where, (short)var5);
  33.                case 4:
  34.                   return new IntExpression(super.right.where, var5);
  35.                case 5:
  36.                   return new LongExpression(super.right.where, (long)var5);
  37.                case 6:
  38.                   return new FloatExpression(super.right.where, (float)var5);
  39.                case 7:
  40.                   return new DoubleExpression(super.right.where, (double)var5);
  41.                default:
  42.                   return this;
  43.             }
  44.          case 66:
  45.             long var4 = ((LongExpression)super.right).value;
  46.             switch (super.type.getTypeCode()) {
  47.                case 1:
  48.                   return new ByteExpression(super.right.where, (byte)((int)var4));
  49.                case 2:
  50.                   return new CharExpression(super.right.where, (char)((int)var4));
  51.                case 3:
  52.                   return new ShortExpression(super.right.where, (short)((int)var4));
  53.                case 4:
  54.                   return new IntExpression(super.right.where, (int)var4);
  55.                case 5:
  56.                default:
  57.                   return this;
  58.                case 6:
  59.                   return new FloatExpression(super.right.where, (float)var4);
  60.                case 7:
  61.                   return new DoubleExpression(super.right.where, (double)var4);
  62.             }
  63.          case 67:
  64.             float var3 = ((FloatExpression)super.right).value;
  65.             switch (super.type.getTypeCode()) {
  66.                case 1:
  67.                   return new ByteExpression(super.right.where, (byte)((int)var3));
  68.                case 2:
  69.                   return new CharExpression(super.right.where, (char)((int)var3));
  70.                case 3:
  71.                   return new ShortExpression(super.right.where, (short)((int)var3));
  72.                case 4:
  73.                   return new IntExpression(super.right.where, (int)var3);
  74.                case 5:
  75.                   return new LongExpression(super.right.where, (long)var3);
  76.                case 6:
  77.                default:
  78.                   return this;
  79.                case 7:
  80.                   return new DoubleExpression(super.right.where, (double)var3);
  81.             }
  82.          case 68:
  83.             double var1 = ((DoubleExpression)super.right).value;
  84.             switch (super.type.getTypeCode()) {
  85.                case 1:
  86.                   return new ByteExpression(super.right.where, (byte)((int)var1));
  87.                case 2:
  88.                   return new CharExpression(super.right.where, (char)((int)var1));
  89.                case 3:
  90.                   return new ShortExpression(super.right.where, (short)((int)var1));
  91.                case 4:
  92.                   return new IntExpression(super.right.where, (int)var1);
  93.                case 5:
  94.                   return new LongExpression(super.right.where, (long)var1);
  95.                case 6:
  96.                   return new FloatExpression(super.right.where, (float)var1);
  97.             }
  98.       }
  99.  
  100.       return this;
  101.    }
  102.  
  103.    public boolean equals(int var1) {
  104.       return super.right.equals(var1);
  105.    }
  106.  
  107.    public boolean equals(boolean var1) {
  108.       return super.right.equals(var1);
  109.    }
  110.  
  111.    public void codeValue(Environment var1, Context var2, Assembler var3) {
  112.       super.right.codeValue(var1, var2, var3);
  113.       ((Expression)this).codeConversion(var1, var2, var3, super.right.type, super.type);
  114.    }
  115.  
  116.    public void print(PrintStream var1) {
  117.       var1.print("(" + Constants.opNames[super.op] + " " + super.type.toString() + " ");
  118.       super.right.print(var1);
  119.       var1.print(")");
  120.    }
  121. }
  122.